home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / TP042692.ARJ / 04-26-92.TPC
Text File  |  1992-04-26  |  79KB  |  2,350 lines

  1.  
  2. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3.  
  4. Conference 4
  5. Date       01-01-00 00:00:00
  6. From       
  7. To         
  8. Subject    
  9.  
  10.  
  11. --- WM v2.01/92-0100
  12.  * Origin: A.C.E. of Spades (615)383-4381 The B.A.N. board (1:116/33)
  13.  * Tossed by SFToss v1.00b on 92/04/09  12:01:00
  14.  
  15. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  16.  
  17. Conference 4
  18. Date       04-18-92 03:07:05
  19. From       Trevor Carlsen
  20. To         David Webb
  21. Subject    Word Wrap/Editor
  22.  
  23.  
  24.  
  25.  DW>    I was wondering if I could get some help at all on word
  26.  DW> wrapping. I need to write an editor into a programme of
  27.  DW> mine. So far, I have succeeded in writing a word wrap
  28.  DW> routine using an array but when I try to write this array to
  29.  DW> a text file, the textfile is just left blank. Would someone
  30.  DW> possibly be able to give me a full source listing of an
  31.  DW> editor at all (preferably with cursor keys written into it -
  32.  DW> not essential) with filesave built in please ?
  33.  
  34. OPro has an editor object.  This is a commercial product which will cost you
  35. about A$215 to land including all charges if you personally import it. (Don't
  36. pay the rip-off local price.)  The price is cheap considering what you get
  37. - 3 manuals, 9 disks, 11mb - all including full source.
  38.  
  39. Another excellent source is the now defunct Borland product Editor toolbox.
  40.  This has not been updated since TP4 but is still advertised by some software
  41. places.  As it is so out-of-date you should be able to negotiate a decent
  42. price. It would probably only need minor rewriting for TP6.
  43.  
  44. TeeCee
  45.  
  46. --- TC-ED   v2.01  
  47.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  48.  * Tossed by SFToss v1.00b on 92/04/19  17:24:04
  49.  
  50. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  51.  
  52. Conference 4
  53. Date       04-18-92 01:45:46
  54. From       Trevor Carlsen
  55. To         Håkan Johansson
  56. Subject    Mouse Stuff
  57.  
  58.  
  59.  
  60.  > Mouse unit, copyright 1992 HSE Delft, all rights reserved. 
  61.  > Released as public domain 
  62.  
  63.  LM> The two lines above contradict each other.  Which is it, 
  64.  LM> copyrighted or public domain? 
  65.  
  66.  HJ> I don't believe it is a contradiction, but of course, I may
  67.  HJ> wrong. Copyright, in this case, means you don't have the
  68.  HJ> right to sell the unit source code without the permission of
  69.  HJ> the author, but, by the "public domain" statement, have the
  70.  HJ> right to compile it into your own programs. Anyway, that's
  71.  HJ> my personal interpretation. Am I in the wrong?
  72.  
  73. Yes, you are.  To avoid the extended threads that always seem to follow debates
  74. on copyright here is the situation.
  75.  
  76. Placing a work in the Public Domain means that a programmer relinquishes ALL
  77. rights to that work.  Anybody can do *anything* s/he wishes with it, including
  78. sell, alter, mangle, publish etc etc. as the original owner no longer has
  79. *any* rights to the work.
  80.  
  81. Therefore your original message was contradictory.  "Copyright" and "Public
  82. Domain" are exact opposites.  They are mutually exclusive.
  83.  
  84. TeeCee
  85.  
  86. --- TC-ED   v2.01  
  87.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  88.  * Tossed by SFToss v1.00b on 92/04/19  17:24:05
  89.  
  90. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  91.  
  92. Conference 4
  93. Date       04-18-92 03:11:21
  94. From       Trevor Carlsen
  95. To         Herb Brown
  96. Subject    Sector sizes
  97.  
  98.  
  99.  
  100.  HB> ... is the fact DOS calculates free space on sector size,
  101.  HB> i.e., if a file were 9186 bytes, DOS would free 10240 bytes
  102.  HB> with a drive that used 512 bytes in sector size. How does
  103.  HB> one get the sector size of any given drive so as to get the
  104.  HB> totals for the dry run and the actual run to match?
  105.  
  106. A cluster is the unit used by dos as the minimum allocation, not a sector.
  107. Usually, but not always, 4 sectors make up one cluster on hard drives.  Floppies
  108. and RAM drives are different.
  109.  
  110. function GetClusterSize(drive: byte {0=default, 1=A... etc}): word;
  111.   var
  112.     regs       : registers;  { from the dos unit }
  113.   begin
  114.     with regs do begin
  115.       ah := $1c;
  116.       dl := drive;
  117.       intr($21,regs);
  118.       GetClusterSize := al {SectorsPerCluster} * cx {BytesPerSector};
  119.     end; { with }
  120.   end; { GetClusterSize }
  121.  
  122. TeeCee
  123.  
  124.  
  125.  
  126. --- TC-ED   v2.01  
  127.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  128.  * Tossed by SFToss v1.00b on 92/04/19  17:24:05
  129.  
  130. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  131.  
  132. Conference 4
  133. Date       04-18-92 08:43:19
  134. From       Trevor Carlsen
  135. To         Jud Mccranie
  136. Subject    Re: More features needed in TP
  137.  
  138.  
  139.  
  140.  DM> One might say that having 64K of global data is bad style in
  141.  DM> itself.  What sort of data is it?
  142.  
  143.  JM> Any sort of data that several parts of the program need.  It
  144.  JM> is much better to have all of the data you need right there
  145.  JM> in memory rather than having to read it from disk each time
  146.  JM> you need it.
  147.  
  148. But why waste global data segment space?  It makes far more sense to use the heap.
  149.  
  150.  
  151. TeeCee
  152.  
  153.  
  154. --- TC-ED   v2.01  
  155.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  156.  * Tossed by SFToss v1.00b on 92/04/19  17:24:05
  157.  
  158. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  159.  
  160. Conference 4
  161. Date       04-18-92 10:31:43
  162. From       Trevor Carlsen
  163. To         Jud Mccranie
  164. Subject    Your origin line
  165.  
  166.  
  167.  
  168.  JM>  * Origin: Business Connection 750+M (912)247-6977 (69:2210/1)
  169.                                                          ^^^^^^^^^^
  170. I'm not sure if this is new or not but it is the first time I've noticed it!
  171.  Please fix to ensure it complies with FidoNet specifications.
  172.  
  173. As it stands, a reader has no way of knowing where to send you netmail if
  174. s/he does not have access to the PATH line.
  175.  
  176. Trevor Carlsen
  177. Moderator.
  178.  
  179. --- TC-ED   v2.01  
  180.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  181.  * Tossed by SFToss v1.00b on 92/04/19  17:24:05
  182.  
  183. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  184.  
  185. Conference 4
  186. Date       04-18-92 08:39:02
  187. From       Dj Murdoch
  188. To         Jud Mccranie
  189. Subject    Re: More features needed in TP
  190.  
  191.   DM> One might say that having 64K of global data is bad style in
  192.  DM> itself.  What sort of data is it?
  193.  
  194.  JM> Any sort of data that several parts of the program need.  It is much
  195.  JM> better to have all of the data you need right there in memory rather
  196.  JM> than having to read it from disk each time you need it.
  197.  
  198. Then why not put it in the heap?
  199.  
  200. --- Msg V3.2
  201.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  202.  * Tossed by SFToss v1.00b on 92/04/19  17:24:16
  203.  
  204. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  205.  
  206. Conference 4
  207. Date       04-18-92 08:39:45
  208. From       Dj Murdoch
  209. To         Jud Mccranie
  210. Subject    Re: Powers
  211.  
  212.   JM> Of course, the overloading wouldn't be necessary if the common
  213.  JM> operations like that were included.  And as far as I'm concerned, it
  214.  JM> would be acceptable if other symbols were used, say "#" for matrix mult.
  215.  JM> But there aren't enough of those other symbols, unless you go to the
  216.  JM> non-keyboard ASCII characters.
  217.  
  218. I like it to be kept simple.  Remember, TP is readable.  Start writing things like
  219.  
  220.  
  221.    x%z$w#y
  222.  
  223. and you won't know what's going on.
  224.  
  225.  
  226. --- Msg V3.2
  227.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  228.  * Tossed by SFToss v1.00b on 92/04/19  17:24:16
  229.  
  230. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  231.  
  232. Conference 4
  233. Date       04-18-92 08:47:47
  234. From       Dj Murdoch
  235. To         Herb Brown
  236. Subject    Re: Sector sizes
  237.  
  238.   HB> However, the clash is the fact DOS calculates free 
  239.  HB> space on sector size, i.e., if a file were 9186 bytes, DOS 
  240.  HB> would free 10240 bytes with a drive that used 512 bytes in 
  241.  HB> sector size. How does one get the sector size of any given 
  242.  HB> drive so as to get the totals for the dry run and the actual run to match?
  243.  
  244. Not sector size, cluster size.  You can get the cluster size in a couple of
  245. ways.  Either read the boot sector directly, or use the MSDOS service 1C:
  246.  
  247. INT 21 - DOS 1+ - GET ALLOCATION INFORMATION FOR SPECIFIC DRIVE
  248.         AH = 1Ch
  249.         DL = drive (00h = default, 01h = A:, etc)
  250. Return: AL = sectors per cluster (allocation unit)
  251.         CX = bytes per sector
  252.         DX = total number of clusters
  253.         DS:BX -> media ID byte (see AH=1Bh)
  254. Note:   under DOS 1.x, DS:BX points at an actual copy of the FAT; later
  255.           versions return a pointer to a copy of the FAT's ID byte
  256.  
  257. This is from Ralf Brown's interrupt list.
  258.  
  259.  
  260. --- Msg V3.2
  261.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  262.  * Tossed by SFToss v1.00b on 92/04/19  17:24:17
  263.  
  264. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  265.  
  266. Conference 4
  267. Date       04-18-92 08:56:35
  268. From       Dj Murdoch
  269. To         Trevor Carlsen
  270. Subject    Re: Encryption
  271.  
  272.   TC> What you say is true if the key is non-random.  However 
  273.  TC> any file produced randomly and used only once as a key 
  274.  TC> makes the method 100% secure.
  275.  
  276. ...unless you use a pseudo-random number generator, and someone figures out
  277. which one :-).
  278.  
  279. --- Msg V3.2
  280.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  281.  * Tossed by SFToss v1.00b on 92/04/19  17:24:17
  282.  
  283. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  284.  
  285. Conference 4
  286. Date       04-18-92 09:00:02
  287. From       Dj Murdoch
  288. To         John Gohde
  289. Subject    Re: C++ Products
  290.  
  291.   JG> As  TP has  stopped being  simple a  long while  ago, I hope that
  292.  JG> Borland  bothers  to  add  a  few  needed  so-called professional
  293.  JG> features to it. Otherwise, TP  may very well become obsolete. The
  294.  JG> more serious  users will migrate  to other companies  like Stoney
  295.  JG> Point. New users wont start cause  it costs more than C. And, the
  296.  JG> simple types will  stick to BASIC, as the  new versions are quite
  297.  JG> well suited  to those who just  want to muck around  in something
  298.  JG> simple.
  299.  
  300. Which sort of features did you have in mind?  The major difference between
  301. TP and SBP+ is that the latter makes significant attempts at optimization;
  302. that would be nice, but would fall behind two other features in importance
  303. for me:
  304.  
  305.   - huge structures  (i.e. >64K)
  306.   - dynamic array indexing (i.e. array bounds determined at run-time, so I
  307. don't have to use ugly syntax to work with matrices whose size isn't known
  308. in advance.
  309.  
  310.  
  311. --- Msg V3.2
  312.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  313.  * Tossed by SFToss v1.00b on 92/04/19  17:24:17
  314.  
  315. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  316.  
  317. Conference 4
  318. Date       04-19-92 18:36:00
  319. From       Werner Berghofer
  320. To         John Gohde
  321. Subject    SAA/CUA standards
  322.  
  323.  
  324.  
  325.  
  326.  * Forwarded from conference "PASCAL"
  327.  * Originally by Werner Berghofer
  328.  * Originally to Frank Rachel
  329.  * Originally dated Sunday, 5. April 1992, 19:16
  330.  
  331.        Frank,
  332.  
  333.  > Is there some kind of specification on this SAA/CUA thing?
  334.  
  335.        yes, of course: IBM published a set of books called "Systems Application
  336. Architecture Library".  The most important are listed here.
  337.  
  338.    Title                                                       IBM part#
  339.    ---------------------------------------------------------------------
  340.    An Overview                                                 GC26-4341
  341.    Common Communications Support: Summary                      GC31-6810
  342.    Common User Access: Advanced Interface Design Guide         SC26-4582
  343.    Common User Access: Basic Interface Design Guide            SC26-4583
  344.    SAA, A Guide for Evaluating Applications                    G320-9803
  345.    SAA, Common Programming Interface: Dialog Reference         SC26-4356
  346.    SAA, Common Programming Interface: Presentation Reference   SC26-4359
  347.    Writing Applications: A Design Guide                        SC26-4362
  348.    ---------------------------------------------------------------------
  349.  
  350.        All of them are written in typical IBM English, so be prepared for
  351. a linguistic close encounter of the blue kind besides the cultural shock ;-)
  352.  
  353.        Werner
  354.  
  355. ---
  356.  * Origin: REALITY.SYS corrupted -- reboot Universe [Y,n]? (2:310/90.100)
  357.  * Tossed by SFToss v1.00b on 92/04/20  08:16:03
  358.  
  359. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  360.  
  361. Conference 4
  362. Date       04-19-92 13:00:04
  363. From       Terry Hughes
  364. To         Eddy Hartono
  365. Subject    ExecSwap
  366.  
  367.  
  368. EH>Hello Terry!
  369.  
  370. EH>Can you tell me , where can I find a ExecSwap funtion, that
  371. EH>also can load a TSR
  372. EH>without any problem...,just as NC do, or PCShell ?
  373. EH>I need it badly.... ha ha ha
  374.  
  375. It's possible to load a permanent TSR from an EXEC but it's
  376. not usually practical (you end with a hole in memory if
  377. it works at all).
  378.  
  379. I'm not familiar with NC or PCShell so I don't know if that's
  380. what they're really doing.
  381.  
  382. In any case, you can find EXECSWAP on our BBS -- 719-260-9726.
  383.  
  384. -Terry
  385.  
  386.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  387.  
  388. --- Maximus 2.01wb
  389.  * Origin: The Programmers Playhouse (1:128/60)
  390.  * Tossed by SFToss v1.00b on 92/04/20  08:16:11
  391.  
  392. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  393.  
  394. Conference 4
  395. Date       04-19-92 12:16:06
  396. From       Terry Hughes
  397. To         Jud Mccranie
  398. Subject    time
  399.  
  400.  
  401. JM>I have some suggestions for time variables in TPro and OPro.  There is a
  402.  
  403. JM>need for more variability in time data types.  For instance, the current
  404. JM>"time" is a time of day (< 24 hours).  There also needs to be a
  405. JM>elapsed time (or something), that can go past 24 hours, say to store
  406. JM>the time worked this week (or month).
  407.  
  408. Sounds like what you really want is a timing facility. We provide
  409. such a unit in Async Professional.
  410.  
  411. -Terry
  412.  
  413.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  414.  
  415. --- Maximus 2.01wb
  416.  * Origin: The Programmers Playhouse (1:128/60)
  417.  * Tossed by SFToss v1.00b on 92/04/20  08:16:11
  418.  
  419. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  420.  
  421. Conference 4
  422. Date       04-19-92 13:24:08
  423. From       Terry Hughes
  424. To         John Gohde
  425. Subject    Re: C++ Products
  426.  
  427.  
  428. JG>Well, to me  Turbo Pascal has stopped being  simple since version
  429. JG>5.0. Certainly with  the addition of OOPs and TV;  TP can be very
  430. JG>complicated.  But, just  because these  features are  there don't
  431. JG>mean that you have to use them.
  432.  
  433. I guess "simple" is relative. In the circles that I travel TP, C
  434. and C++ dominate. Of those, Turbo Pascal provides the cleanest
  435. and simplest language environment (not to mention the fastest at
  436. compiling and linking). Even the very powerful addition of OOP
  437. required only four new keywords.
  438.  
  439. TV isn't part of the TP language specification -- it's an add-on
  440. library (framework to be precise).
  441.  
  442. JG>It seems  to me that  adding to the  number of optional  compiler
  443. JG>directives  would not  in any  way  bog  down either  TP nor a TP
  444. JG>programmer.
  445.  
  446. I don't recall saying otherwise. My complaint about C++ is
  447. that I believe it is too slow and offers a higher level of
  448. complexity and difficulty than is required for most
  449. applications. My advice to people that want to bring these
  450. "features" over to TP is to themselves switch to C or C++.
  451.  
  452. That doesn't mean I think Borland should let TP stagnate nor do
  453. I believe they are doing so. I just hope that new features are
  454. added thoughtfully and carefully and the essence of Turbo Pascal
  455. (simplicity and developement speed) is left intact.
  456.  
  457. JG>As  TP has  stopped being  simple a  long while  ago, I hope that
  458. JG>Borland  bothers  to  add  a  few  needed  so-called professional
  459. JG>features to it. Otherwise, TP  may very well become obsolete. The
  460. JG>more serious  users will migrate  to other companies  like Stoney
  461. JG>Point. New users wont start cause  it costs more than C. And, the
  462. JG>simple types will  stick to BASIC, as the  new versions are quite
  463. JG>well suited  to those who just  want to muck around  in something
  464. JG>simple.
  465.  
  466. Our experience in the Turbo Pascal add-on market suggests
  467. otherwise. TP thrives in the vertical market, consulting and
  468. even corporate markets (at least, in our slice of the TP
  469. market). This means that existing programmers are sticking with
  470. it and new programmers are joining the fold. And I believe what
  471. attracts them are the clean language, simple but powerful OOP
  472. capabilities, fast compilation and link speeds, and low library
  473. prices.
  474.  
  475. However, I'm not so foolish as to believe that TP will ever win
  476. over the market in general. Too many companies and programmers
  477. blindly accept the complexity and longer development cycles of
  478. C/C++ simply because everyone else is doing so. Our opinion,
  479. however, is that TP will continue to thrive despite the
  480. lemming-like rush to C++.
  481.  
  482. -Terry
  483.  
  484.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  485.  
  486. --- Maximus 2.01wb
  487.  * Origin: The Programmers Playhouse (1:128/60)
  488.  * Tossed by SFToss v1.00b on 92/04/20  08:16:11
  489.  
  490. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  491.  
  492. Conference 4
  493. Date       04-19-92 13:24:10
  494. From       Terry Hughes
  495. To         Alf Katz
  496. Subject    Opro V1.12
  497.  
  498.  
  499. AK>I have version 1.10 and use it A LOT.  Any idea about what
  500. AK>changes have been made since 1.10?  Specifically, I have
  501. AK>encountered a bug which hangs the system if you execute an
  502. AK>external program with the mouse enabled.  I've had to send
  503. AK>out a couple of applications without mouse support because
  504. AK>of this.
  505.  
  506. No major new components but a bunch of minor to moderate
  507. enhancements: MAKESCRN/MAKEMENU now generate units and programs
  508. instead of just programs; divider bars in picklists, spreadsheet
  509. object, background tasks during drag move/resize, 4DOS and DOS 5
  510. related updates, and a host of other modifications of the same
  511. caliber.
  512.  
  513. I'm not aware of any mouse/EXECing related bugs. If you give me
  514. some details here or call our tech support line I'm sure we can
  515. figure out what's going wrong. The most common cause of such a
  516. hang is leaving an ISR or mouse event handler active when
  517. doing the EXEC. In particular, if you are using OPDRAG then you
  518. must be sure to call DisableISRs and InitializeMouse before
  519. doing the EXEC.
  520.  
  521. -Terry
  522.  
  523.  
  524.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  525.  
  526. --- Maximus 2.01wb
  527.  * Origin: The Programmers Playhouse (1:128/60)
  528.  * Tossed by SFToss v1.00b on 92/04/20  08:16:11
  529.  
  530. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  531.  
  532. Conference 4
  533. Date       04-19-92 12:01:51
  534. From       Dj Murdoch
  535. To         John Giesbrecht
  536. Subject    Re: Procedure start-up code
  537.  
  538.   JG> I have a small (strictly cosmetic) suggestion: the 
  539.  JG> listings would be much easier to read if the disassembled 
  540.  JG> code were indented by a space or two to set it off from the source.
  541.  
  542. I think it would be hard to do that right:  the source indentation usually
  543. varies a lot, and I wouldn't want to mess around with it.  I'd suggest indenting
  544. your source; DUMPPROG will keep whatever indentation you give.
  545.  
  546. --- Msg V3.2
  547.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  548.  * Tossed by SFToss v1.00b on 92/04/20  09:39:55
  549.  
  550. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  551.  
  552. Conference 4
  553. Date       04-19-92 12:08:42
  554. From       Dj Murdoch
  555. To         Timothy Winters
  556. Subject    Re: Turbo Pascal Units
  557.  
  558.   TW> Hello out there in Pascal Land!  I have asked a question 
  559.  TW> to a buddy of mine and he can't answer me...Maybe one of 
  560.  TW> you out there can.  Is there a way to use .TPU files from 
  561.  TW> older versions of TP (4.0/5.0/5.5) on TP 6.0, without 
  562.  TW> having the original source code for the unit?  He has Tp 
  563.  TW> 5.5, and I have Tp 6.0.  he has some units that he got 
  564.  TW> from various boards that work on his version of TP, but 
  565.  TW> there is no source for them.  I would like to use these 
  566.  TW> units, but I can't since I have TP 6.0.  Does anyone know 
  567.  TW> of a translator program out there, or is this idea an impossibility?
  568.  
  569. It's not impossible, but it's very difficult, and not certain to work.  Harald
  570. Harms has mentioned a commercial program to do the translation from Saesoft;
  571. you might want to write to him (sorry, I forget the address) and buy a copy. 
  572.  
  573.  
  574. However, I should mention that Harald is apparently the only one on the echo
  575. to have even heard of this product, and though he claims to have no interest
  576. in it himself, has only provided his own address for contacting the company.
  577.  He has also been vary vague about exactly what are the exact capabilities
  578. of the program. 
  579.  
  580. I'd recommend that you don't spend any money on this conversion program. 
  581. If you have any non-Borland .TPU units without source, either buy the source
  582. or throw them out.  They'll only cause you grief later if you don't.
  583.  
  584. --- Msg V3.2 
  585.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  586.  * Tossed by SFToss v1.00b on 92/04/20  09:39:55
  587.  
  588. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  589.  
  590. Conference 4
  591. Date       04-19-92 12:30:03
  592. From       Dj Murdoch
  593. To         Judy Birmingham
  594. Subject    Re: SAA/CUA ???
  595.  
  596.   JB> In recent months I've seen several messages mentioning 
  597.  JB> SAA/CUA (or something like that), and they seemed to be 
  598.  JB> referring to a type of user interface.  I've posted this 
  599.  JB> question several times, but apparently our mail hasn't 
  600.  JB> been getting out for the past month or so, so I never got 
  601.  JB> any replies.  Can anybody tell me what the initials stand for?
  602.  
  603. It came out of IBM; you expect it to mean something? :-)  I think they stand
  604. for something like "Systems Application Architecture/Common User Access",
  605. but I could easily have one or two meaningless words wrong.
  606.  
  607.  
  608. --- Msg V3.2
  609.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  610.  * Tossed by SFToss v1.00b on 92/04/20  09:39:55
  611.  
  612. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  613.  
  614. Conference 4
  615. Date       04-19-92 12:36:23
  616. From       Dj Murdoch
  617. To         Sean Ocker
  618. Subject    Re: FAT writing
  619.  
  620.   SO> Okay, so how is the FAT stored?  How is it accessable (just
  621.  SO> like a file -- using assign)?  And, how do you change things
  622.  SO> in there without messing up everything?
  623.  
  624. You expect an answer to this in echomail?  Look it up in a reference book;
  625. most of them will get it right, whereas you'll get all sorts of misinformation
  626. if you ask here.  
  627.  
  628. For starters:
  629.  
  630. The FAT is usually concentrated in the middle of the disk, though a small
  631. amount of FAT is to be found everywhere on the disk.  Some particularly slow
  632. moving disks have a good deal of FAT concentrated in the read/write head.
  633.  
  634.  SO> Example..... Want to move (not copy) a file to another directory
  635.  SO> or drive without having to have space for two copies....I have
  636.  SO> seen programs that do this...but how is it done?
  637.  
  638. Don't do this by editing the FAT.  Use Rename, or copy & delete.
  639.  
  640.  SO> Also, how do you get rid of the DOS grid on a floppy disk to give
  641.  SO> the disk more space?
  642.  
  643. What is a "DOS grid"?  
  644.  
  645.  SO> Finally, is Pascal not the language to use for all this?
  646.  SO> Is Assembly?
  647.  
  648. Depending on what you want to do, it's almost certainly easier in Pascal.
  649.  You may have to write some low-level parts in inline assembly code; for example
  650.  there's no way to call the DOS absolute disk read/write services from pure
  651. Pascal. 
  652.  
  653.  
  654. --- Msg V3.2
  655.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  656.  * Tossed by SFToss v1.00b on 92/04/20  09:39:55
  657.  
  658. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  659.  
  660. Conference 4
  661. Date       04-20-92 09:13:18
  662. From       Trevor Carlsen
  663. To         J.P KARRELL
  664. Subject    Re: Variable # Parameters
  665.  
  666.  
  667.  
  668.  JK> Excuse my apparent ignorance, but who can I contact to link into the 
  669.  
  670.  JK> PNL? Your reply appreciated,
  671.  
  672. As you are in the US, I cannot really be of much assistance but here is an
  673. extract from the latest file.  There are probably dozens more that would carry this.
  674.  
  675.  
  676.     Editor:
  677.                        Alex Boisvert
  678.                        86 Bryant St.
  679.                        Sherbrooke, Quebec
  680.                        Canada   J1J 3E4
  681.                        
  682.                              Distribution List
  683.  
  684.      The  following  is  the  phone numbers to bulletin boards known to carry
  685.      PNL.   If you would like your  bulletin board's name and number added to
  686.  
  687.      or deleted from this list,  please send me a message at one of  my  many
  688.      addresses.    I  can  not guarantee whether a listed board will have any
  689.  
  690.      particular issue, however.
  691.  
  692.         Thieve's World ......................... Phone: (713) 463-8053
  693.         Hippocampus ............................ Phone: (203) 484-4621
  694.         Turbo City BBS ......................... Phone: (209) 599-7435
  695.         The Final Frontier BBS.................. Phone: (518) 761-0869
  696.  
  697. TeeCee
  698.  
  699.  
  700. --- TC-ED   v2.01  
  701.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  702.  * Tossed by SFToss v1.00b on 92/04/20  19:43:23
  703.  
  704. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  705.  
  706. Conference 4
  707. Date       04-21-92 03:48:11
  708. From       Trevor Carlsen
  709. To         Dj Murdoch
  710. Subject    Re: Encryption
  711.  
  712.  
  713.  
  714.  TC> What you say is true if the key is non-random.  However 
  715.  TC> any file produced randomly and used only once as a key 
  716.  TC> makes the method 100% secure.
  717.  
  718.  DM> ...unless you use a pseudo-random number generator, and someone 
  719.  DM> figures out which one :-).
  720.  
  721. Yep!  As you well know, no pseudo-random sequence is in fact random.  It only
  722. appears to be that way.  Actually I've just discovered a method of producing
  723. a sequence of random numbers that I would consider to be about as close as
  724. one can get to being truly random!
  725.  
  726. Here in Oz, Telecom had an infamous telephone that they used to install that,
  727. if connected in parallel with a modem, introduces what appears to be totally
  728. random line noise to a connection after its residual power is exhausted -
  729. usually about 12 minutes.  If this noise is captured to a file I think it
  730. would be totally random.  Its an interesting concept! :-)
  731.  
  732. TeeCee
  733.  
  734. --- TC-ED   v2.01  
  735.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  736.  * Tossed by SFToss v1.00b on 92/04/21  20:21:08
  737.  
  738. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  739.  
  740. Conference 4
  741. Date       04-21-92 03:14:36
  742. From       Trevor Carlsen
  743. To         Herb Brown
  744. Subject    Cluster size (was sector)
  745.  
  746.  
  747.  
  748.  HB> The function works well.  The formula I used to get the result is:
  749.  
  750.  HB>  Number_of_clusters := trunc(file_size/cluster_size)+1
  751.  HB>  Would_be_free := Number_of_clusters * cluster_size
  752.  
  753.  HB> The var would_be_free is a tally of the file(s) actual size.  The only 
  754.  
  755.  HB> problem with this algorythm is the possibitie that the file size would 
  756.  
  757.  HB> be equal to the cluster size. The +1 would throw that out the window.  
  758.  
  759.  HB> I suppose modula arithmetic would be well suited here.(?)
  760.  
  761. No... a better algorithm is the answer. :-)
  762.  
  763.   Number_of_clusters := (file_size + pred(cluster_size)) div cluster_size;
  764.  
  765. TeeCee
  766.  
  767. --- TC-ED   v2.01  
  768.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  769.  * Tossed by SFToss v1.00b on 92/04/21  20:21:08
  770.  
  771. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  772.  
  773. Conference 4
  774. Date       04-21-92 03:24:53
  775. From       Trevor Carlsen
  776. To         Dale Barnes
  777. Subject    Help Needed with TP arrays
  778.  
  779.  
  780.  
  781.  > TP can use a pseudo dynamic array - I won't post the code again,
  782.  > as no doubt you have seen it by now, and this is undoubtedly the
  783.  
  784.  DB> Would it be asking to much for you to post again, I am interested in 
  785.  
  786.  DB> how your doing this.  I have not seen your code (this one) posted 
  787.  DB> before.
  788.  
  789. It involves declaring a type which is zero bounded, turning off range checking
  790. when using an array declared as that type, and then allocating only as much
  791. memory as is required at start-up.  If during running it is determined that
  792. more elements are required than was originally allocated then the whole structur
  793.  can be saved, freed and reallocated.
  794.  
  795.   type
  796.     dynamic_array = array[0..0] of whatever;
  797.     Ptr2DA        = ^dynamic_array;
  798.   var
  799.    dynamic        : Ptr2DA;
  800.  
  801.   begin
  802.     Get_Number_Of_Elements_Needed;
  803.     GetMem(dynamic,NumbOfElements * sizeof(whatever));
  804.     {$R-}
  805.     dynamic[1000] := 1000;
  806.     
  807. etc...
  808.  
  809. Range checking becomes absolutely the programmer's responsibility - a la C. 
  810.  
  811.  
  812. An alternative method involves declaring the type with as many elements as
  813. possible and only allocating memory for as many as required.  I prefer the
  814. above method because it does not exclude multi-dimensioned arrays as does
  815. the other.  I also prefer it because it *forces* the programmer to cancel
  816. automatic range checking and so, hopefully :-), forces programmer range checking
  817.  
  818.  
  819. TeeCee
  820.  
  821. --- TC-ED   v2.01  
  822.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  823.  * Tossed by SFToss v1.00b on 92/04/21  20:21:08
  824.  
  825. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  826.  
  827. Conference 4
  828. Date       04-21-92 09:09:38
  829. From       Trevor Carlsen
  830. To         Benjamin Schollnick
  831. Subject    Re: Exit?
  832.  
  833.  
  834.  
  835.  BS>     EXIT is a royal pain in the rear!  I'm handling a rewrite of a
  836.  BS> program and the original programmer made a MESS of it by using GLOBAL 
  837.  
  838.  BS> VARIABLES and EXIT's to no end!!!  AUGH!!
  839.  
  840.  BS>     Three quarters of the time I'm spending is just in erasing all the
  841.  BS> exit's and global variables...
  842.  
  843. Exits, Gotos and global variables are not necessarily bad in themselves. 
  844. The problems usually arise from the way in which they are used by some "programm
  845. rs".
  846.  
  847. TeeCee
  848.  
  849. --- TC-ED   v2.01  
  850.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  851.  * Tossed by SFToss v1.00b on 92/04/21  20:21:08
  852.  
  853. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  854.  
  855. Conference 4
  856. Date       04-20-92 22:31:00
  857. From       Norbert Igl
  858. To         Chris Barrett
  859. Subject    MOVEing files vs. copy/delete
  860.  
  861.  
  862.  
  863.  
  864.  
  865.    Hi Cris, and all...
  866.    After reading so much about this topic,
  867.    i feel free to include "my" sligtly different solution.
  868.    ( HI, TeeCee, you know about "my" solutions...(:-) )
  869.  
  870. -------------------------8<---------------------------------
  871.  
  872. uses DOS;
  873. (*$M 4000,0,0*)       { leave memory for child-process, min=100k }
  874.  
  875.  
  876. procedure RenameFile(OldName, NewName : String);
  877. Type ServerReg = Record
  878.                    AX,BX,CX,DX,SI,DI,DS,ES : Word;
  879.                    resvd,
  880.                    StationId,
  881.                    ProcessId               : Word;
  882.                  end;
  883.  
  884. Var  Regs: Registers;
  885.     SRegs: ServerReg;
  886.  
  887.    procedure DoCommand(par:string);
  888.    begin
  889.      SwapVectors;
  890.      Exec(GetEnv('COMSPEC'),'/C '+ par + '>NUL');
  891.      SwapVectors
  892.    end;
  893.  
  894.    function RealName(FakeName:String):String;
  895.    Var Temp:String;
  896.    begin
  897.      FakeName := FakeName + #0; { ASCIIZ }
  898.      With Regs do
  899.      begin
  900.        AH := $60;
  901.        DS := Seg(FakeName); SI := Ofs(FakeName[1]);
  902.        ES := Seg(Temp);     DI := OfS(Temp[1]);
  903.        INTR($21,Regs);
  904.        DOSERROR := AX * ((Flags And FCarry) shr 7);
  905.        Temp[0] := #255;
  906.        Temp[0] := CHAR(POS(#0,Temp)-1);
  907.      end;
  908.      If DosError <> 0 then Temp := '';
  909.      RealName := Temp;
  910.    end;
  911.  
  912.    begin
  913.      OldName :=  RealName( OldName );       { resolve subst, join, redir...}
  914.      if DosError <> 0 Then exit;
  915.      NewName :=  RealName( NewName );
  916.      if DosError <> 0 Then exit;
  917.      If ( OldName[1] <> NewName[1] )        { diff. drives !! }
  918.      or ( Swap(DosVersion) < $0310 )        { update your DOS-Version !!! }
  919.  
  920.      or ( Swap(DosVersion) = $2903 )        { DR-DOS 3.41...Oh nooo...}
  921.      or ( Swap(DosVersion) = $3203 ) then   { DR-DOS 5.0...Aiieeee..}
  922.      begin                                  { the old fashioned way...}
  923.        DoCommand('COPY' + OldName+ ' ' + NewName );
  924.        if DosError <> 0 Then exit;
  925.             { if DosError=8 => not enough mem, check your (*$M...settings }
  926.  
  927.        DoCommand('DEL'  + OldName);
  928.      end
  929.      else
  930.      begin                                  { rename with path & wildcard }
  931.  
  932.        OldName := OldName + #0;             { -> ASCIIZ }
  933.        NewName := NewName + #0;
  934.        With SRegs do
  935.        begin
  936.          AX := $5600;
  937.          DS := Seg(OldName); DX := Ofs(OldName[1]);
  938.          ES := Seg(NewName); DI := Ofs(NewName[1]);
  939.          resvd := 0;
  940.          StationId := 0;
  941.          ProcessId := PrefixSeg;
  942.          Regs.AX := $5D00;
  943.          Regs.DS := Seg(SRegs);
  944.          Regs.DX := Ofs(SRegs);
  945.          Intr($21, Regs);
  946.          DosError := AX * (( Regs.Flags and FCarry) shr 7);
  947.        end;
  948.      end;
  949. end;
  950.  
  951. (**************** Test-Area ****************************)
  952.  
  953. begin
  954.   renameFile( 'Test.pas'  , 'Test1.txt');
  955.   if DosError <> 0 then
  956.      writeln(' Rename failed : Error =', DosError);
  957.   if DosError=0
  958.      then renamefile( 'test1.txt' , 'test.pas' );
  959. end.
  960.  
  961. ------------------------->8---------------------------------
  962.  
  963. Bye from Germany, Norbert
  964.  
  965. ---
  966.  * Origin: [MILKYWAY]-(SOL.3)-EUROPA/@FIDO (2:241/5300.3)
  967.  * Tossed by SFToss v1.00b on 92/04/21  20:21:11
  968.  
  969. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  970.  
  971. Conference 4
  972. Date       04-21-92 00:00:00
  973. From       Terry Hughes
  974. To         Richard Morris
  975. Subject    Why I Like Tp 5.5 Ide (c
  976.  
  977.  
  978. RM> > SP>I think Turbo Power has been great in identifying what programmer's
  979.  
  980. RM> > Finally, we certainly could do TV add-ons to attract
  981. RM> > new programmers that want such tools. However, our
  982. RM> > resources are finite and we've been concentrating our
  983. RM> > efforts on new tools for Turbo Pascal for Windows.
  984.  
  985. RM>Not event driven I hope <wink>.
  986.  
  987. The UI tools will be event driven because a) Windows itself is
  988. event driven (unlike DOS) and b) they'll build on top of Borland's
  989. Object Windows Library.
  990.  
  991. -Terry
  992.  
  993.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  994.  
  995. --- Maximus 2.01wb
  996.  * Origin: The Programmers Playhouse (1:128/60)
  997.  * Tossed by SFToss v1.00b on 92/04/22  09:28:35
  998.  
  999. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1000.  
  1001. Conference 4
  1002. Date       04-21-92 00:00:02
  1003. From       Terry Hughes
  1004. To         Jim Starke
  1005. Subject    Looking for
  1006.  
  1007.  
  1008. JS>I am looking for some TP 6.0 Code for uploading and
  1009. JS>I am hoping that someone knows where I can find the source code for:
  1010.  
  1011. JS>Xmodem
  1012. JS>Xmodem 1K
  1013. JS>Ymodem (Batch)
  1014. JS>Zmodem (Batch)
  1015. JS>Kermit
  1016. JS>Wazoo
  1017. JS>SeaLink
  1018.  
  1019. JS>I would prefer that the code be all public domain if at all
  1020. JS>possible, but if not, Sigh, I would pay the shareware fee
  1021. JS>for it.
  1022.  
  1023. If you can't find it all PD or aren't happy with what you find
  1024. you might want to know that our Async Professional product
  1025. has all but SeaLink. If interested, you can call us at the
  1026. number below or 800-333-4160 in the US and Canada.
  1027.  
  1028. -Terry
  1029.  
  1030.  * OLX 2.2 * TurboPower Software (voice 719-260-6641)
  1031.  
  1032. --- Maximus 2.01wb
  1033.  * Origin: The Programmers Playhouse (1:128/60)
  1034.  * Tossed by SFToss v1.00b on 92/04/22  09:28:35
  1035.  
  1036. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1037.  
  1038. Conference 4
  1039. Date       04-22-92 02:27:53
  1040. From       Trevor Carlsen
  1041. To         Dj Murdoch
  1042. Subject    Re: FAT writing
  1043.  
  1044.  
  1045.  
  1046.  SO> Okay, so how is the FAT stored?  How is it accessable (just
  1047.  SO> like a file -- using assign)?  And, how do you change things
  1048.  SO> in there without messing up everything?
  1049.  
  1050.  DM> You expect an answer to this in echomail?  Look it up in a reference 
  1051.  
  1052.  DM> book; most of them will get it right, whereas you'll get all sorts of 
  1053.  
  1054.  DM> misinformation if you ask here.  
  1055.  
  1056.  DM> For starters:
  1057.  DM> The FAT is usually concentrated in the middle of the disk, though a 
  1058.  DM> small amount of FAT is to be found everywhere on the disk.  Some 
  1059.  DM> particularly slow moving disks have a good deal of FAT concentrated in 
  1060.  
  1061.  DM> the read/write head.
  1062.  
  1063. ????...  The FATs are, to the best of my knowledge, contiguous and follow
  1064. directly after the boot record of the disk.  The boot record is only one sector
  1065. long and is always sector 0.  Therefore the FATs start at sector 1. The length
  1066. of the FAT, and the number of copies of the FAT, are specified in the boot
  1067. sector.  Immediately following the FATs comes the root directory.
  1068.  
  1069. When you say that the FATs are usually concentrated in the middle of the disk,
  1070. are you referring to their physical location rather than their logical location?
  1071.  I guess it would make sense to physically locate them at a central point
  1072. from an access timing point of view, its just that I have never seen that
  1073. concept mentioned before.  The controlling of that would be transparent to
  1074. both the programmer and the machine as it should be incorporated into the
  1075. drive circuitry itself.
  1076.  
  1077. TeeCee
  1078.  
  1079. --- TC-ED   v2.01  
  1080.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1081.  * Tossed by SFToss v1.00b on 92/04/22  19:04:44
  1082.  
  1083. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1084.  
  1085. Conference 4
  1086. Date       04-22-92 03:17:35
  1087. From       Trevor Carlsen
  1088. To         Keven R. Pittsinger
  1089. Subject    Re: Reading C With Pascal
  1090.  
  1091.  
  1092.  
  1093.  KP> The problem was the different way that C & Pascal handle
  1094.  KP> strings inside the record.  Wasn't quite sure how to write
  1095.  KP> the string back to the record without Pascal putting in the
  1096.  KP> length byte.
  1097.  
  1098. The simplest way to do a conversion is by creating a pointer to a C string
  1099. type and using that to assign the C string the value.  All that needs to be
  1100. done before this is to assign the element at length(TPString)+1 the nul value,
  1101.  
  1102. eg.
  1103.  
  1104. type
  1105.   CStr    = array[1..255] of char;
  1106.   CStrPtr = ^CStr;
  1107.  
  1108. function CString(var st: string): CStrPtr;
  1109.   begin
  1110.     if length(st) < 255 then    
  1111.       st[length(st) + 1] := #0;
  1112.     CString := @st[1];
  1113.   end;
  1114.  
  1115. then ... if the var cs is a CStr
  1116.  
  1117.    cs := CString(TPStr)^;
  1118.  
  1119. TeeCee
  1120.     
  1121.  
  1122.  
  1123.  
  1124.  
  1125. --- TC-ED   v2.01  
  1126.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1127.  * Tossed by SFToss v1.00b on 92/04/22  19:04:44
  1128.  
  1129. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1130.  
  1131. Conference 4
  1132. Date       04-22-92 03:21:21
  1133. From       Trevor Carlsen
  1134. To         Steffen Offermann
  1135. Subject    TVision C->Pascal
  1136.  
  1137.  
  1138.  
  1139.  SO> ... could at least someone post a complete syntax
  1140.  SO> description of C++ and OOP-Pascal so that I might be able do
  1141.  SO> write one on my own?
  1142.  
  1143. You have to be joking!  The syntax description of both languages would be
  1144. fully described in both manuals.  Take it from there.
  1145.  
  1146. TeeCee
  1147.  
  1148. --- TC-ED   v2.01  
  1149.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1150.  * Tossed by SFToss v1.00b on 92/04/22  19:04:44
  1151.  
  1152. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1153.  
  1154. Conference 4
  1155. Date       04-22-92 03:58:31
  1156. From       Trevor Carlsen
  1157. To         Ross Alford
  1158. Subject    Turbo 5.5 doesn't recognize Cyrix coproc
  1159.  
  1160.  
  1161.  
  1162.  RA> Is this a known problem in Turbo 5.5?  A program compiled
  1163.  RA> with Turbo 5.5 that executes in about 2.9 seconds on a
  1164.  RA> 486-25, and about 15 seconds on a 386SX-20 with coprocessor,
  1165.  RA> takes about 50 seconds on a 386-33 with Cyrix coprocessor. I
  1166.  RA> suspect it is using the emulation library instead of the
  1167.  RA> co-pro. Does Turbo check for a coprocessor in some way other
  1168.  RA> than checking the setup info?  Does it fail to recognise the
  1169.  RA> Cyrix as a coprocessor?  Has anyone else seen anything like
  1170.  RA> this?  BTW, the same 386-33 tests out fine using other
  1171.  RA> programs that require a 387, and I've run various tests that
  1172.  RA> all report that it has a coprocessor which is healthy.  On
  1173.  RA> the other hand, I've tried other Turbo 5.5 programs that use
  1174.  RA> the coprocessor, and none of them work right on that
  1175.  RA> machine.
  1176.  
  1177. Do you have the source code for the TP5.5 programs? If so what are the relevant
  1178. compiler directives?  It looks to me like they may have been compiled using
  1179. N+E+ and for some reason it does not recognise the Cyrix.
  1180.  
  1181. What happens if you use N+E- ? (Not much use to you I suppose if you are not
  1182. the author and don't have the source.)  I believe that programs compiled with
  1183. this setting will not run on a machine without the co-processor.
  1184.  
  1185. The RTL checks for the presence of an 80x87 by instructing the processor to
  1186. store its control word in memory and then checks if that occurred. This is
  1187. indicated by the zero flag.  If there is an 80x87 it then determines which
  1188. one it is. To quote the RTL source comments - "The 80387 defaults to affine
  1189. infinity, whereas the 8087 and 80287 default to projective".  This is getting
  1190. a little out of my depth but may give you some clues.
  1191.  
  1192. I would really suggest that you contact the Borland support people.
  1193.  
  1194. TeeCee
  1195.  
  1196.  
  1197. --- TC-ED   v2.01  
  1198.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1199.  * Tossed by SFToss v1.00b on 92/04/22  19:04:44
  1200.  
  1201. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1202.  
  1203. Conference 4
  1204. Date       04-22-92 04:59:20
  1205. From       Trevor Carlsen
  1206. To         Joy Mukherjee
  1207. Subject    [1/2] - subject lines
  1208.  
  1209.  
  1210.  
  1211.  JM> function Valu (S : String) : LongInt;
  1212.  JM> var
  1213.  JM>     C     : LongInt;
  1214.  JM>     T, E  : Integer;
  1215.  JM>     I     : Byte;
  1216.  JM>     Place : LongInt;
  1217.  JM> begin
  1218.  JM>     Place := 1;
  1219.  JM>     C := 0;
  1220.  JM>     for I := 6 downto 1 do
  1221.  JM>         begin
  1222.  JM>             Val (S [I], T, E);
  1223.  JM>             If T <> 0 then
  1224.  JM>                 begin
  1225.  JM>                     C := C + T * Place;
  1226.  JM>                     Place := Place * 10;
  1227.  JM>                  end;
  1228.  JM>          end;
  1229.  JM>     Valu := C - 1;
  1230.  JM> end;
  1231.  
  1232. Joy it fascinates me why you used this method instead of the far simpler -
  1233.  
  1234.   function Valu(S: string): longint;
  1235.     var temp: longint;
  1236.         code: integer;
  1237.     begin
  1238.       val(S,temp,code);
  1239.       if code = 0 then
  1240.         Valu := temp - 1;
  1241.       else
  1242.         Valu := 0;
  1243.     end;
  1244.  
  1245. Could it be because S might have trailing spaces?  If so it would be better
  1246. to strip these first.  If you have Eagle Software's strg unit (highly recommende
  1247. ), just add the line ChrDelR(S,' ') before the val above.
  1248.  
  1249. Just as a matter of interest your function will not return the correct value
  1250. if there is a zero digit in the string.  eg.  if S = '1024' your function
  1251. will return 123 and not 1023 as intended.
  1252.  
  1253. The fix is simple:
  1254.     for I := 6 downto 1 do
  1255.         begin
  1256.             Val (S [I], T, E);
  1257.             If T <> 0 then
  1258.                C := C + T * Place;
  1259.             Place := Place * 10;
  1260.          end;
  1261.     Valu := C - 1;
  1262.  
  1263. TeeCee
  1264.  
  1265.  
  1266. --- TC-ED   v2.01  
  1267.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1268.  * Tossed by SFToss v1.00b on 92/04/22  19:04:45
  1269.  
  1270. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1271.  
  1272. Conference 4
  1273. Date       04-22-92 06:43:15
  1274. From       Trevor Carlsen
  1275. To         Joy Mukherjee
  1276. Subject    [1/2] - subject lines
  1277.  
  1278.  
  1279.  
  1280.  TC> Just as a matter of interest your function will not return the correct 
  1281.  
  1282.  TC> value if there is a zero digit in the string.  eg.  if S = '1024' your 
  1283.  
  1284.  TC> function will return 123 and not 1023 as intended.
  1285.  
  1286.  TC> The fix is simple:
  1287.  TC>     for I := 6 downto 1 do
  1288.  TC>         begin
  1289.  TC>             Val (S [I], T, E);
  1290.  TC>             If T <> 0 then
  1291.  TC>                C := C + T * Place;
  1292.  TC>             Place := Place * 10;
  1293.  TC>          end;
  1294.  TC>     Valu := C - 1;
  1295.  
  1296. Oh dear! :-(  If the reason you were using this function was because of trailing
  1297. spaces then the fix above is faulty as trailing spaces will stuff it up.  Try -
  1298.  
  1299.     for I := 6 down to t do
  1300.         begin
  1301.             Val (S [I], T, E);
  1302.             if E = 0 then begin
  1303.                 C := C + T * Place;
  1304.                 Place := Place * 10;
  1305.             end;
  1306.          end;
  1307.  
  1308. Now that will barf on imbedded spaces!  In anything like this it is better
  1309. to get rid of unwanted chars first.
  1310.  
  1311. TeeCee
  1312.  
  1313. --- TC-ED   v2.01  
  1314.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1315.  * Tossed by SFToss v1.00b on 92/04/22  19:04:45
  1316.  
  1317. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1318.  
  1319. Conference 4
  1320. Date       04-22-92 06:56:29
  1321. From       Trevor Carlsen
  1322. To         John Gohde
  1323. Subject    Bbs Hacking
  1324.  
  1325.  
  1326.  
  1327. I did ask that this thread be dropped immediately.  On the assumption that
  1328. you may not have seen that request yet, I'll say it just once more.  Drop
  1329. this off-topic thread NOW.
  1330.  
  1331. Trevor Carlsen
  1332. Moderator.
  1333.  
  1334. --- TC-ED   v2.01  
  1335.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1336.  * Tossed by SFToss v1.00b on 92/04/22  19:04:45
  1337.  
  1338. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1339.  
  1340. Conference 4
  1341. Date       04-22-92 06:59:48
  1342. From       Trevor Carlsen
  1343. To         Vince Laurent
  1344. Subject    Reading Environment Variables
  1345.  
  1346.  
  1347.  
  1348.  VL> I am trying to write a piece of code that can read environment 
  1349.  VL> variables that were SET in either the autoexec.bat or entered later.  
  1350.  
  1351. Check out your Library reference pages 27 and 48.
  1352.  
  1353. TeeCee
  1354.  
  1355. --- TC-ED   v2.01  
  1356.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1357.  * Tossed by SFToss v1.00b on 92/04/22  19:04:45
  1358.  
  1359. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1360.  
  1361. Conference 4
  1362. Date       04-21-92 18:13:24
  1363. From       Dj Murdoch
  1364. To         David G. Edwards
  1365. Subject    Re: Pointers as function results (was: P
  1366.  
  1367.   >I've found that this system works really well, and I can 
  1368.  >sleep at night, 
  1369.  >knowing that I never leave dangling pointers even though I'm doing lots 
  1370.  
  1371.  >of allocations and deallocations.
  1372.  
  1373.  DG> Fascinating!  How did you do this before Pascal had objects?!  
  1374.  
  1375. Well, I didn't.
  1376.  
  1377.  >As you can see, the memory allocation is a pretty minor part of it.  
  1378.  
  1379.  DG> Was the memory allocation done in "Matrix()"?
  1380.  
  1381. Yep.
  1382.  
  1383.  >The 
  1384.  >dynamic indexing is really ugly (I'd like to use 
  1385.  DG> "y[k,j]", but I'm stuck 
  1386.  >using "y^.r^[k]^.c[j]"), but I haven't found any way around that.
  1387.  
  1388.  DG> Why can't a future Pascal compiler translate "y[k,j]" to 
  1389.  DG> "y^.r^[k]^.c[j]" for you?  I've never used Fortran on a 
  1390.  DG> PC, but don't PC Fortran compilers have to do this?
  1391.  
  1392. There are two problems here.  First, Turbo Pascal can't handle dynamically
  1393. declared arrays.  Thats the main reason y[k,j] can't work; it's something
  1394. that's been solved in standard Pascal in a couple of different ways, but TP
  1395. hasn't included those (and I don't know the details of them).  The second
  1396. problem is the 64K barrier - that limits square matrices of doubles to about
  1397. 90 x 90, which isn't big enough for me.  I've got each row allocated separately,
  1398. with y^.r being a pointer to the array of pointers to the rows.
  1399.  
  1400. I'm really hoping that TP 7 (or BP 1, or whatever it's called) will address
  1401. both of these problems.
  1402.  
  1403. --- Msg V3.2
  1404.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1405.  * Tossed by SFToss v1.00b on 92/04/23  08:19:03
  1406.  
  1407. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1408.  
  1409. Conference 4
  1410. Date       04-21-92 18:35:56
  1411. From       Dj Murdoch
  1412. To         Stephane Michaud
  1413. Subject    Re: Procedures...
  1414.  
  1415.   SM>      A PD implementation... Do you know any?
  1416.  
  1417. No.  
  1418.  
  1419. --- Msg V3.2
  1420.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1421.  * Tossed by SFToss v1.00b on 92/04/23  08:19:04
  1422.  
  1423. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1424.  
  1425. Conference 4
  1426. Date       04-21-92 18:39:13
  1427. From       Dj Murdoch
  1428. To         Herb Brown
  1429. Subject    Re: Cluster size (was sector)
  1430.  
  1431.   HB> The function works well.  The formula I used to get the result is:
  1432.  
  1433.  HB>  Number_of_clusters := trunc(file_size/cluster_size)+1
  1434.  HB>  Would_be_free := Number_of_clusters * cluster_size
  1435.  
  1436.  HB> The var would_be_free is a tally of the file(s) actual 
  1437.  HB> size.  The only problem with this algorythm is the 
  1438.  HB> possibitie that the file size would be equal to the 
  1439.  HB> cluster size. The +1 would throw that out the window.  I 
  1440.  HB> suppose modula arithmetic would be well suited here.(?)
  1441.  
  1442. A formula that gives the right answer in all cases is:
  1443.  
  1444.   Number_of_clusters := trunc( (file_size + cluster_size - 1)/cluster_size);
  1445.  
  1446. If file_size is an exact multiple of cluster_size, this gives the same answer
  1447. as trunc(file_size/cluster_size); if not, it adds the 1.
  1448.  
  1449. --- Msg V3.2
  1450.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1451.  * Tossed by SFToss v1.00b on 92/04/23  08:19:04
  1452.  
  1453. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1454.  
  1455. Conference 4
  1456. Date       04-21-92 18:43:09
  1457. From       Dj Murdoch
  1458. To         James Pryor
  1459. Subject    Re: MOVEing files vs. copy/d
  1460.  
  1461.   JP> Duplicate the source files' directory entry in the target
  1462.  JP> directory, then delete the source entry.  Yes, it will only
  1463.  JP> work if the partition is the same.
  1464.  
  1465.  JP> msdos Int 21h, function 56h
  1466.  
  1467. No need to go low-level - that's the function that the TP Rename() procedure
  1468. calls.  For example, to move \olddir\filename to \newdir\filename, just do
  1469. the following:
  1470.  
  1471. var
  1472.   f:file; begin
  1473.   Assign(f,'\olddir\filename');
  1474.   Rename(f,'\newdir\filename'); end.
  1475.  
  1476.  
  1477. --- Msg V3.2
  1478.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1479.  * Tossed by SFToss v1.00b on 92/04/23  08:19:04
  1480.  
  1481. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1482.  
  1483. Conference 4
  1484. Date       04-21-92 18:48:27
  1485. From       Dj Murdoch
  1486. To         Eddie Braiter
  1487. Subject    Re: Borland Pascal
  1488.  
  1489.   EB> A while ago there was a discussion about a possible 
  1490.  EB> "Borland Pascal". Upon contacting Borland's tech support 
  1491.  EB> over the Internet, I got this message:
  1492.  
  1493.  EB> -------
  1494.  
  1495.  EB> I have heard nothing about "Borland Pascal",  our latest version of Pascal
  1496.  EB> is 6.0 which is what you have.
  1497.  
  1498.  EB> Thank you,
  1499.  
  1500.  EB> Howard Kanter
  1501.  EB> Borland Online Customer Service
  1502.  
  1503.  EB> -------
  1504.  
  1505. Apparently Howard hasn't been reading Compuserve.  The rumours about Borland
  1506. Pascal came out there, from a Borland rep.
  1507.  
  1508. --- Msg V3.2
  1509.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1510.  * Tossed by SFToss v1.00b on 92/04/23  08:19:04
  1511.  
  1512. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1513.  
  1514. Conference 4
  1515. Date       04-23-92 04:13:08
  1516. From       Trevor Carlsen
  1517. To         Dan Wulff
  1518. Subject    Re: Fossil Routines
  1519.  
  1520.  
  1521.  
  1522.  DW> Could you please explain how the nodelist for QBBS 2.75 is to be 
  1523.  DW> understod?
  1524.  
  1525. Dan, I'll get you to take this thread to netmail please.
  1526.  
  1527. Trevor Carlsen
  1528. Moderator.
  1529.  
  1530. --- TC-ED   v2.01  
  1531.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1532.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1533.  
  1534. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1535.  
  1536. Conference 4
  1537. Date       04-23-92 06:12:07
  1538. From       Trevor Carlsen
  1539. To         Carl Letourneau
  1540. Subject    Garbage
  1541.  
  1542.  
  1543.  
  1544.  CL>         I have TP 5.5, when I write to a file, it writes garbage.  Is 
  1545.  
  1546.  CL> it normal or a bug in my compiler?  If it is normal, I'd like to know 
  1547.  
  1548.  CL> how to tell TP not to write that garbage!
  1549.  
  1550. It would be normal if you are doing things incorrectly!  Write a short demonstra
  1551. ion and post it here.  That way we will have an idea of how to help.
  1552.  
  1553. TeeCee
  1554.  
  1555. --- TC-ED   v2.01  
  1556.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1557.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1558.  
  1559. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1560.  
  1561. Conference 4
  1562. Date       04-23-92 06:14:06
  1563. From       Trevor Carlsen
  1564. To         Jud Mccranie
  1565. Subject    Re: More features needed in TP
  1566.  
  1567.  
  1568.  
  1569.  TC> But why waste global data segment space?  It makes far more
  1570.  TC> sense to use the heap.
  1571.  
  1572.  JM> My point was to allow MORE than 64K global data.  A global array is
  1573.  JM> easier to use than the heap, which I consider a work-around.
  1574.  
  1575. Of course it is not a work-around!  The heap has many advantages in regard
  1576. to memory conservation.  Any program that requires more than 64K of global
  1577. data is IMHO badly designed in the first place.  Actually the effective limit
  1578. for global data could be considered as 128K less whatever stack space is needed
  1579. for normal procedure and function calls if the programmer is smart.  eg.
  1580.  
  1581. {$M 65520,0,655360}
  1582. var
  1583.   { 64K of globals };
  1584. procedure main;
  1585.   var
  1586.     { Allowing for an 8K stack requirement you can have another 
  1587.       56K of "globals" here. }
  1588.   begin
  1589.     { Place the whole program in here }
  1590.   end;
  1591.  
  1592. begin
  1593.   main;
  1594. end.
  1595.  
  1596. What IS needed is a way to have individual structures exceed 64K.
  1597.  
  1598. TeeCee
  1599.  
  1600. --- TC-ED   v2.01  
  1601.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1602.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1603.  
  1604. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1605.  
  1606. Conference 4
  1607. Date       04-23-92 06:25:12
  1608. From       Trevor Carlsen
  1609. To         Jud Mccranie
  1610. Subject    Re: TP 6 Bad design
  1611.  
  1612.  
  1613.  
  1614.  JM> ... I don't think I'm using the heap.
  1615.  
  1616. Jud tell me you didn't mean that! P-l-e-a-s-e! :-)
  1617.  
  1618. You are either using the heap or you are not.  As the programmer you KNOW
  1619. which it is!  The way that reads, and previous messages of yours re global
  1620. variable space would tend to suggest, is that you don't know fully how to
  1621. use the heap.  Surely I'm wrong.
  1622.  
  1623. TeeCee
  1624.  
  1625. --- TC-ED   v2.01  
  1626.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1627.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1628.  
  1629. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1630.  
  1631. Conference 4
  1632. Date       04-23-92 07:02:50
  1633. From       Trevor Carlsen
  1634. To         Mark Ouellet
  1635. Subject    Re: Qwk Format/reader 2/3
  1636.  
  1637.  
  1638.  
  1639.  JM> PATH: ****/** 151/1003 13/13 12/12 240/99 1 30371/4
  1640.  MO> TeeCee, if you read this I included the paths and seen-bys,
  1641.  MO> maybe you can make some sens out of this.
  1642.  
  1643. Actually that message was one of 107 dupes accidently generated by a well
  1644. known, and well respected contributor to this echo (who shall remain nameless
  1645. as he has had the courtesy to profoundly apologise after being made aware
  1646. of the problem).  
  1647.  
  1648. TeeCee
  1649.  
  1650. --- TC-ED   v2.01  
  1651.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1652.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1653.  
  1654. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1655.  
  1656. Conference 4
  1657. Date       04-23-92 07:07:27
  1658. From       Trevor Carlsen
  1659. To         Mark Ouellet
  1660. Subject    Re: testing records for equality
  1661.  
  1662.  
  1663.  
  1664.  TC> ... This caveat can be dispensed with if when manipulating 
  1665.  TC> string  fields, the field is fully nulled out first...
  1666. ...
  1667.  TC> Here is a better way to do your byte by byte comparison
  1668.  TC> without the move procedure:
  1669.  TC> function Equal(var Struct1, Struct2; size: word): boolean; 
  1670. ...
  1671.  TC> Untested.
  1672.  
  1673.  MO>         I suspect it would not work either... Unless each
  1674.  MO> structure was zeroed out before initialising any of its
  1675.  MO> fields.
  1676.  
  1677.  MO>         Assuming a variant record of course, anything else
  1678.  MO> is ok except maybe when fields of the structure, without
  1679.  MO> being of variable size, can actually contain more or less
  1680.  MO> data. Such as a String or any other field type which does
  1681.  MO> not completely fill it's allocated space.
  1682.  
  1683. You are correct, but I did make the proviso "fully nulled out first".  What
  1684. I did omit was that this also applied to variant records as well as string
  1685. fields.  Thanks for pointing that out.
  1686.  
  1687. TeeCee
  1688.  
  1689. --- TC-ED   v2.01  
  1690.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1691.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1692.  
  1693. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1694.  
  1695. Conference 4
  1696. Date       04-23-92 07:13:27
  1697. From       Trevor Carlsen
  1698. To         Travis Brunn
  1699. Subject    Addresses and Pointers
  1700.  
  1701.  
  1702.  
  1703.  TB> Does anyone know if there is a function to assign the address of a 
  1704.  TB> pointer to a longint or some other variable from inside Macintosh 
  1705.  TB> Turbo Pascal.  I know it's a decrepid useless version with lot's of 
  1706.  TB> bugs, but it's the best I have to work with.  I can allot space in 
  1707.  TB> memory to a pointer and give a pointer an address manually, but I have 
  1708.  
  1709.  TB> been unable to return the address of a pointer that has been allocated 
  1710.  
  1711.  TB> space.  
  1712.  
  1713. I'm not familiar with TP for the Mac, however you could use a typecast if
  1714. the longint you speak of is suitable -
  1715.  
  1716.   write(longint(PointerVar));
  1717.  
  1718. TeeCee
  1719.  
  1720. --- TC-ED   v2.01  
  1721.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1722.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1723.  
  1724. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1725.  
  1726. Conference 4
  1727. Date       04-23-92 07:22:05
  1728. From       Trevor Carlsen
  1729. To         Herb Brown
  1730. Subject    Cluster size (was sector)
  1731.  
  1732.  
  1733.  
  1734.  TC>   Number_of_clusters := (file_size + 
  1735.  TC> pred(cluster_size)) div cluster_size;
  1736.  
  1737.  HB> OK, didn't think of that way.  I'll be willing to bet if I looked at 
  1738.  
  1739.  HB> the code to xmodem, or something similar, it'll be the same as what 
  1740.  HB> you have.  (parts where it calculates blocks).   
  1741.  
  1742. I'm no sure how XModem does it but it is likely to be similar.
  1743.  
  1744.  HB> ...  And when are you firing up the BBQ again?
  1745.  
  1746. Soon...soon :-)  With winter fast approaching - it was only 34C (93F) yesterday
  1747. - it is becoming cool enough to engage in pleasant outdoor activities again.
  1748.  
  1749. TeeCee
  1750.  
  1751. --- TC-ED   v2.01  
  1752.  * Origin: The Pilbara's Pascal Centre (+61 91 732930) (3:690/644)
  1753.  * Tossed by SFToss v1.00b on 92/04/23  19:29:36
  1754.  
  1755. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1756.  
  1757. Conference 4
  1758. Date       04-23-92 18:17:33
  1759. From       Dj Murdoch
  1760. To         Jud Mccranie
  1761. Subject    Re: Powers
  1762.  
  1763.   JM> Well, the alternatives are to overlaod the operators (which I think you
  1764.  JM> were opposed to) or to do it with awkward functions/procs.
  1765.  
  1766. Procedures are awkward for operators, but functions are generally pretty readabl
  1767. .  There are tricks to allow functions to return any record up to 255 bytes
  1768. (by making TP think that it's returning a string, instead), and the methods
  1769. I described a few days ago let you allocate and return pointers to larger
  1770. things.
  1771.  
  1772. --- Msg V3.2
  1773.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1774.  * Tossed by SFToss v1.00b on 92/04/24  15:08:15
  1775.  
  1776. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1777.  
  1778. Conference 4
  1779. Date       04-23-92 18:21:39
  1780. From       Dj Murdoch
  1781. To         John Giesbrecht
  1782. Subject    Re: Procedure start-up code
  1783.  
  1784.   JG> Ah, but I *do* indent my source.  I guess I didn't explain 
  1785.  JG> myself very well.  What I meant to say was:  instead of
  1786.  
  1787.  JG> LN.PAS#124:    push ds
  1788.  JG> 0000:0249 1E              PUSH    DS
  1789.  JG> LN.PAS#125:    xor cx, cx
  1790.  JG> 0000:024A 31C9            XOR     CX,CX
  1791.  
  1792.  JG> how about
  1793.  
  1794.  JG> LN.PAS#124:    push ds
  1795.  JG>   0000:0249 1E              PUSH    DS
  1796.  JG> LN.PAS#125:    xor cx, cx
  1797.  JG>   0000:024A 31C9            XOR     CX,CX
  1798.  
  1799. Fantastic suggestion!  That's exactly what I did just last night.  (Actually,
  1800. I eventually figured out what you meant, and I agree, it does look a lot better.
  1801.  
  1802.  
  1803. Here, just to whet your appetite, is some typical output from DUMPPROG version
  1804. 2 (which is still unfinished):
  1805.  
  1806.           DOIT:
  1807.   TEST.PAS#1:var
  1808.   TEST.PAS#2:  x : word;
  1809.   TEST.PAS#3:
  1810.   TEST.PAS#4:procedure doit;
  1811.   TEST.PAS#5:begin
  1812.     0000:0000 55              PUSH    BP
  1813.     0000:0001 89E5            MOV     BP,SP
  1814.     0000:0003 31C0            XOR     AX,AX
  1815.     0000:0005 9A7C020400      CALL    0004h:027Ch
  1816.   TEST.PAS#6:  if x > 1 then
  1817.     0000:000A 833E440001      CMP     [WORD PTR X(+0044h)],+01h
  1818.     0000:000F 7604            JBE     SHORT TEST.PAS#8(0015h)
  1819.   TEST.PAS#7:    dec(x);
  1820.     0000:0011 FF0E4400        DEC     [WORD PTR X(+0044h)]
  1821.   TEST.PAS#8:end;
  1822.     0000:0015 5D              POP     BP
  1823.     0000:0016 C3              RET     
  1824.           @:
  1825.   TEST.PAS#9:
  1826.   TEST.PAS#10:begin
  1827.     0000:0017 9A00000400      CALL    0004h:0000h
  1828.     0000:001C 55              PUSH    BP
  1829.     0000:001D 89E5            MOV     BP,SP
  1830.     0000:001F 31C0            XOR     AX,AX
  1831.     0000:0021 9A7C020400      CALL    0004h:027Ch
  1832.   TEST.PAS#11:  x := 10;
  1833.     0000:0026 C70644000A00    MOV     [WORD PTR X(+0044h)],000Ah
  1834.   TEST.PAS#12:  while x > 0 do
  1835.     0000:002C 833E440000      CMP     [WORD PTR X(+0044h)],+00h
  1836.     0000:0031 7605            JBE     SHORT TEST.PAS#14(0038h)
  1837.   TEST.PAS#13:    doit;
  1838.     0000:0033 E8CAFF          CALL    DOIT(0000h)
  1839.     0000:0036 EBF4            JMP     SHORT TEST.PAS#12(002Ch)
  1840.   TEST.PAS#14:end.
  1841.     0000:0038 5D              POP     BP
  1842.     0000:0039 31C0            XOR     AX,AX
  1843.     0000:003B 9AE9000400      CALL    0004h:00E9h
  1844.  
  1845.  
  1846. --- Msg V3.2
  1847.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1848.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  1849.  
  1850. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1851.  
  1852. Conference 4
  1853. Date       04-23-92 18:31:26
  1854. From       Dj Murdoch
  1855. To         Bob Bannon
  1856. Subject    Re: Help Needed With TP arrays
  1857.  
  1858.   BB> The dynamically dimensioned array would only 
  1859.  BB> accept data if its indices were variables instead of 
  1860.  BB> constants.  Here is what I mean: the last line of your sample code read:
  1861.  BB>  
  1862.  BB>                 TheArray^[100] := whatever;  {start using the array}
  1863.  BB>  
  1864.  BB> I found that this did not work, but the following did:
  1865.  BB>  
  1866.  BB>                 TheArray^[j] := whatever;
  1867.  BB>  
  1868.  BB> where j could be a counter or whatever.  The line of code 
  1869.  BB> you gave generated a "constant out of range" error.  
  1870.  
  1871. The problem is with the declaration.  Instead of
  1872.  
  1873.   type
  1874.     bigarray = array[0..0] of integer;
  1875.   you should have
  1876.  
  1877.   type
  1878.     bigarray = array[0..65521 div sizeof(integer)-1];
  1879.  
  1880. and you won't even need to turn off range checking (though of course it won't
  1881. check for the true limit, just the declared limit.
  1882.  
  1883.  
  1884. --- Msg V3.2
  1885.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1886.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  1887.  
  1888. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1889.  
  1890. Conference 4
  1891. Date       04-23-92 18:35:35
  1892. From       Dj Murdoch
  1893. To         Richard Morris
  1894. Subject    Re: Object-oriented programming
  1895.  
  1896.   RM> Picked up your TP enhancments to David Kirsch' VGA Mouse 
  1897.  RM> routines, Nice work, 
  1898.  
  1899. Actually, I didn't enhance his code at all.  I just did a near literal translati
  1900. n from C to TP. 
  1901.  
  1902.  RM> It works well under all screen modes (Mods I have made to 
  1903.  RM> allow TV to do 80x30 mode make the 9th bit of characters 
  1904.  RM> unnecessary), The only problem is that the TV Views only
  1905.  RM> shuffle their drawing around a 1 character mouse cursor. 
  1906.  RM> Makes for mouse droppings, and messy view drawing.I can't 
  1907.  RM> think of any easy way to get around this.
  1908.  
  1909. Do you have the TV source?  Could you turn off the mouse when it's in danger
  1910. of being overwritten? This would be a change to TView.DrawView, I think. 
  1911.  
  1912. --- Msg V3.2
  1913.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1914.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  1915.  
  1916. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1917.  
  1918. Conference 4
  1919. Date       04-23-92 18:44:04
  1920. From       Dj Murdoch
  1921. To         Norbert Igl
  1922. Subject    Re: MOVEing files vs. copy/delete
  1923.  
  1924.   NI>    function RealName(FakeName:String):String;
  1925.  NI>    Var Temp:String;
  1926.  NI>    begin
  1927.  NI>      FakeName := FakeName + #0; { ASCIIZ }
  1928.  NI>      With Regs do
  1929.  NI>      begin
  1930.  NI>        AH := $60;
  1931.  NI>        DS := Seg(FakeName); SI := Ofs(FakeName[1]);
  1932.  NI>        ES := Seg(Temp);     DI := OfS(Temp[1]);
  1933.  NI>        INTR($21,Regs);
  1934.  NI>        DOSERROR := AX * ((Flags And FCarry) shr 7);
  1935.  NI>        Temp[0] := #255;
  1936.  NI>        Temp[0] := CHAR(POS(#0,Temp)-1);
  1937.  NI>      end;
  1938.  NI>      If DosError <> 0 then Temp := '';
  1939.  NI>      RealName := Temp;
  1940.  NI>    end;
  1941.  
  1942.  NI>    begin
  1943.  NI>      OldName :=  RealName( OldName );       { resolve 
  1944.  NI> subst, join, redir...}
  1945.  
  1946. This is sort of dangerous.   To quote from Ralf Brown's interrupt list, talking
  1947. about INT 21 AH=60:
  1948.  
  1949. if path string is on a JOINed drive, the returned name is the one that would
  1950. be needed if the drive were not JOINed; similarly for a SUBSTed, ASSIGNed,
  1951. or network drive letter.   Because of this, it is possible to get a qualified
  1952. name that is not legal under the current combination of SUBSTs, ASSIGNs, JOINs,
  1953. and network redirections.
  1954.        If that happens to you, your code below will fail, because you'll have
  1955. lost the legal alias, and will be working with the illegal true name.
  1956.  
  1957.  
  1958. --- Msg V3.2
  1959.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1960.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  1961.  
  1962. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1963.  
  1964. Conference 4
  1965. Date       04-23-92 18:49:05
  1966. From       Dj Murdoch
  1967. To         Pierre Denommee
  1968. Subject    Re: Turbo Pascal Units
  1969.  
  1970.   PD>      This is impossible, TPU include portion of the RTL 
  1971.  PD> and the RTL changes from version to version. A .TPU 
  1972.  PD> without a source is a useless thing when the next version arrives.
  1973.  
  1974. It's not that it includes the RTL (units don't include any part of other units
  1975. that they use), but just that it contains all sorts of references to particular
  1976. offsets into the old RTL.  If you could figure out the correspondence between
  1977. offsets in the old and new (if there was one...) then you could do a conversion.
  1978.  I don't know of anyone who has bothered, with the possible exception of the
  1979. rumoured commercial conversion utility.
  1980.  
  1981. --- Msg V3.2
  1982.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  1983.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  1984.  
  1985. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1986.  
  1987. Conference 4
  1988. Date       04-23-92 18:51:49
  1989. From       Dj Murdoch
  1990. To         Trevor Carlsen
  1991. Subject    Re: FAT writing
  1992.  
  1993.   DM> The FAT is usually concentrated in the middle of the disk, though a 
  1994.  DM> small amount of FAT is to be found everywhere on the disk.  Some 
  1995.  DM> particularly slow moving disks have a good deal of 
  1996.  DM> FAT concentrated in 
  1997.  DM> the read/write head.
  1998.  
  1999.  TC> ????...  The FATs are, to the best of my knowledge, 
  2000.  TC> contiguous and follow directly after the boot record of 
  2001.  TC> the disk.  
  2002.  
  2003. Sorry, TC.  I forgot the :-).  It was late at night, and my sense of humour
  2004. isn't that great at the best of times.
  2005.  
  2006.  
  2007. --- Msg V3.2
  2008.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  2009.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  2010.  
  2011. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2012.  
  2013. Conference 4
  2014. Date       04-23-92 20:30:55
  2015. From       Dj Murdoch
  2016. To         Greg Williams
  2017. Subject    Re: Question, Compression
  2018.  
  2019.   EG> I heard about someone working on an INTENSIVE form of 
  2020.  EG> compression, It would take almost a MEG and make it 1 
  2021.  EG> byte, does ANY one know about this radical compression 
  2022.  EG> theory?
  2023.  
  2024.  GW> Hehehe... sounds like "lossey" compression to me!
  2025.  
  2026. Here's my new, super-duper lossless compression method that can compress huge
  2027. files incredibly: for example, the file TURBO.EXE (325982 bytes) and the file
  2028. TURBO.HLP (669951 bytes) can each be compressed into a single *bit*!!!!!! 
  2029.  
  2030.  
  2031. (DOS doesn't handle 1 bit files well, so I write out the bit as a whole byte.
  2032.  In fact, DOS will waste a whole cluster storing the compressed version, but
  2033. that's not my fault.) 
  2034.  
  2035. Program Compress; 
  2036. begin
  2037.   if paramstr(1) = 'TURBO.EXE' then
  2038.     write('0')
  2039.   else 
  2040.     write('1'); 
  2041. end.
  2042.  
  2043. Unfortunately, the uncompress program is rather complicated; the best I've
  2044. been able to do so far is a 1 megabyte uncompressor, which looks something
  2045. like this:
  2046.  
  2047. Program UnCompress; 
  2048. var
  2049.   bit : char; 
  2050. begin
  2051.   read(bit);
  2052.   if bit = '0' then
  2053.     write_out_a_copy_of_turbo_exe
  2054.   else
  2055.     write_out_a_copy_of_turbo_hlp; 
  2056. end.
  2057.  
  2058. I've left out the write_out_... routines, because they're rather dull.  One
  2059. limitation of this compressor:  it's only lossless on TURBO.EXE and TURBO.HLP;
  2060. other files are lost completely.
  2061.  
  2062. :-) :-) :-)     <======= For TeeCee :-)
  2063.  
  2064. --- Msg V3.2
  2065.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  2066.  * Tossed by SFToss v1.00b on 92/04/24  15:08:16
  2067.  
  2068. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2069.  
  2070. Conference 4
  2071. Date       04-25-92 12:44:32
  2072. From       Trevor Carlsen
  2073. To         Dj Murdoch
  2074. Subject    Re: Question, Compression
  2075.  
  2076.  
  2077.  
  2078.  DM> I've left out the write_out_... routines, because they're rather dull. 
  2079.  
  2080.  DM>  One limitation of this compressor:  it's only lossless on TURBO.EXE 
  2081.  
  2082.  DM> and TURBO.HLP; other files are lost completely.
  2083.  
  2084.  DM> :-) :-) :-)     <======= For TeeCee :-)
  2085.  
  2086. {$REDFACE+}
  2087.  
  2088. I cannot believe that I did not twig to your humour :-(  Well done.
  2089.  
  2090. BTW the 1meg:1 compression message - the first thing I did was to check if
  2091. it was written on 1st April.  When I saw that it was not, I thought to post
  2092. a message that the writer must have heard this rumour on that date.  Then
  2093. I though better say nothing and just sit back and see how many would be sucked
  2094. in.  -  The mind boggles...
  2095.  
  2096. TeeCee
  2097.  
  2098. --- TC-ED   v2.01  
  2099.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  2100.  * Tossed by SFToss v1.00b on 92/04/25  21:30:49
  2101.  
  2102. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2103.  
  2104. Conference 4
  2105. Date       04-25-92 12:49:25
  2106. From       Trevor Carlsen
  2107. To         Brian Stark
  2108. Subject    Help Needed with TP arrays
  2109.  
  2110.  
  2111.  
  2112.  TC>     {$R-}
  2113.  TC>     dynamic[1000] := 1000;
  2114.  TC> etc...
  2115.  BS> I typed in your original code, and added the necessary info for the 
  2116.  BS> size of the array, but when compiling under Tp v5.5, the IDE kept on 
  2117.  
  2118.  BS> reporting a constant out of range error -- this happened with the 
  2119.  BS> {$R-}. Any ideas as to what may be going on?? Did you test your code, 
  2120.  
  2121.  BS> or is just an idea of how to go about creating dynamic arrays??
  2122.  
  2123. I overlooked (but knew) mentioning that the compiler always catches out-of-range
  2124. literals, regardless of R+ or R-. My apologies.
  2125.  
  2126. Actually by declaring the array as large as is possible this cannot happen.
  2127.  However my view on that method is that it *might* allow a programmer to become
  2128. complacent about writing range checking routines. By forcing him to turn off
  2129. automatic range checking, I hope to increase the awareness of the need for
  2130. code to do it.  Either way the method can be deadly if no RC code is written
  2131. and there is any possibility of out-of-range values.
  2132.  
  2133. TeeCee
  2134.  
  2135. --- TC-ED   v2.01  
  2136.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  2137.  * Tossed by SFToss v1.00b on 92/04/25  21:30:49
  2138.  
  2139. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2140.  
  2141. Conference 4
  2142. Date       04-25-92 12:59:23
  2143. From       Trevor Carlsen
  2144. To         J J Marquez
  2145. Subject    Re: Turbo 5.5 doesn't recognize Cyrix co
  2146.  
  2147.  
  2148.  
  2149.  JJ>   TeeCee - try this and see if it works at your place. I can't get it 
  2150.  
  2151.  JJ> to det be referring to a type of user interface.  I've posted this question
  2152. several times, but apparently our mail hasn't been getting out for the past
  2153. month or so, so I never got any replies.  Can anybody tell me what the initials
  2154. stand for?
  2155.  
  2156.                                    <Judy>
  2157.  
  2158. --- EZPoint V2.0
  2159.  * Origin: North Canton, OH (1:157/531.2)
  2160. SEEN-BY: 1/211 11/1 2 110/35 115/689 154/40 77 100 157/2 3 100 507 531
  2161. SEEN-BY: 157/533 535 538 548 550 602 603 608 609 613 228/19 231/250 233/15
  2162. SEEN-BY: 239/900 396/1       WriteLn (' UNDEFINED Return Value of : ', Test8087:
  2163. );
  2164.  JJ>   end { of case stmt }
  2165.  JJ> END.
  2166.  
  2167. There is nothing wrong with the program but you are making an incorrect assumpti
  2168. n.  Test8087 - from the system unit - has a default value of zero. If code
  2169. from the 80x87 library routines is not needed it is not linked in by the smart
  2170. linker and so the test to change its value never takes place.  If you were
  2171. to include code that *required* something from the RTL library for the 8087,
  2172. the variable then gets its correct value.  On my '486 it reports that a 80387
  2173. was detected.
  2174.  
  2175. TeeCee
  2176.  
  2177. --- TC-ED   v2.01  
  2178.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  2179.  * Tossed by SFToss v1.00b on 92/04/25  21:30:49
  2180.  
  2181. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2182.  
  2183. Conference 4
  2184. Date       04-25-92 13:07:03
  2185. From       Trevor Carlsen
  2186. To         All
  2187. Subject    Messages addressed to me.
  2188.  
  2189.  
  2190.  
  2191. Yesterday my main mail machine gurgled loudly and died comprehensively after
  2192. picking up and distributing the mail - but before I got to read it.  My youngest
  2193. backup was 3 days old, so if anyone has messaged me -  particularly by netmail
  2194. - and get no reply, try again! 
  2195.  
  2196. As luck would have it, I had sold the damn thing and my new machine was also
  2197. arriving yesterday.  Oh well...  :-(
  2198.  
  2199. (and I though my 386 was fast... )
  2200.  
  2201. TeeCee
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207. --- TC-ED   v2.01  
  2208.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  2209.  * Tossed by SFToss v1.00b on 92/04/25  21:30:49
  2210.  
  2211. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2212.  
  2213. Conference 4
  2214. Date       04-25-92 15:55:04
  2215. From       Trevor Carlsen
  2216. To         David G. Edwards
  2217. Subject    Help Needed with TP arrays
  2218.  
  2219.  
  2220.  
  2221.  > I also prefer it because it *forces* the programmer 
  2222.  > to cancel automatic range checking and so, hopefully 
  2223.  > :-), forces programmer range checking.
  2224.  
  2225.  DG> Why force the programmer to do something the machine can do much 
  2226.  DG> better?  
  2227.  
  2228. You'll probably see my other reply on this - I don't *want* the machine to
  2229. do it as there is no way, in this particular situation, where that is reliable.
  2230.  Therefore I want the user to be made very aware that it is HIS/HER responsibili
  2231. y.
  2232.  
  2233. TeeCee
  2234.  
  2235. --- TC-ED   v2.01  
  2236.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  2237.  * Tossed by SFToss v1.00b on 92/04/25  21:30:49
  2238.  
  2239. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2240.  
  2241. Conference 4
  2242. Date       04-25-92 16:00:26
  2243. From       Trevor Carlsen
  2244. To         Chris Kelling
  2245. Subject    Re: Help Needed with TP arrays
  2246.  
  2247.  
  2248.  
  2249.  CK> Why use pseudo dynamic arrays.  You can actually allocate dynamic 
  2250.  CK> arrays.
  2251.  
  2252. Sorry... but TP does not have true dynamic array sizing.  It can be done but
  2253. it is a little bit of a kludge - hence the term "pseudo".  As you obviously
  2254. disagree, why not prove your point of view?  :-)
  2255.  
  2256. TeeCee
  2257.  
  2258. --- TC-ED   v2.01  
  2259.  * Origin: The Pilbara's Pascal Centre (+61 91 732569) (3:690/644)
  2260.  * Tossed by SFToss v1.00b on 92/04/25  21:30:49
  2261.  
  2262. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2263.  
  2264. Conference 4
  2265. Date       04-23-92 22:55:38
  2266. From       Dj Murdoch
  2267. To         Lou Garner
  2268. Subject    Re: Sorting records
  2269.  
  2270.   LG> Can anyone give me some pointers (ha! pun!) in sorting 
  2271.  LG> records on a string field?
  2272.  LG>  
  2273.  LG> I have a typed file of records 459 bytes long each.  The 
  2274.  LG> first two fields are first and last name.  There are 1400 
  2275.  LG> records in the file.
  2276.  LG>  
  2277.  LG> The size of the file means I can't sort in memory (at 
  2278.  LG> least, not until OS/2 Turbo Pascal gets here!).  I could 
  2279.  LG> set up an array of pointers, split the file in half and 
  2280.  LG> sort each half in memory (shell sort, I suppose) and then 
  2281.  LG> merge sort on disk.  Would that be the best bet?
  2282.  
  2283. I think your best bet is probably to do an external sort.  I use QSORT (a
  2284. shareware sort utility) for big sorts like this; it's just so much trouble
  2285. to handle the splits and merges.
  2286.  
  2287. You can file request an old version (QSORT403.ZIP) from my bossnode, 1:221/177,
  2288. but I don't know where you'll get a current one. If you can't find it on a
  2289. BBS, get it direct from SEA.  To quote the .doc file: 
  2290.  
  2291. Please address all correspondence or bug reports relating to this product to:
  2292.  
  2293.  
  2294.           System Enhancement Associates, Inc.
  2295.           21 New Street
  2296.           Wayne, NJ 07470
  2297.           Phone: (201) 473-5153
  2298.  
  2299.  
  2300.  
  2301. --- Msg V3.2
  2302.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  2303.  * Tossed by SFToss v1.00b on 92/04/25  21:30:54
  2304.  
  2305. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2306.  
  2307. Conference 4
  2308. Date       04-24-92 08:34:39
  2309. From       Dj Murdoch
  2310. To         Some Sysop
  2311. Subject    Re:  MOVEing files vs. co cop
  2312.  
  2313.  DM> var
  2314.  DM>  f:file; begin
  2315.  DM>  Assign(f,'\olddir\filename');
  2316.  DM>  Rename(f,'\newdir\filename'); end.
  2317.   
  2318.  S>  This won't work in several cases.  If you are trying that across drives,
  2319.  S>  say c: to d:  you get ioresult 17   and if the file you are trying to
  2320.  S>  rename to already exists you get ioresult 5. But ioresult 5 could mean
  2321.  S>  several things.  I have found it best to first:
  2322.  
  2323. Those are good suggestions.  I should have said that the code above is incomplet
  2324. ; it doesn't consider exceptions, let alone handle them.
  2325.  
  2326. P.S.  You should adjust your message editor so that it doesn't post echomail
  2327. from "Sysop".  If I don't change the destination line, thousands of sysops
  2328. around the world will be notified that they've got a message waiting.
  2329.  
  2330. --- Msg V3.2
  2331.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  2332.  * Tossed by SFToss v1.00b on 92/04/25  21:30:54
  2333.  
  2334. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  2335.  
  2336. Conference 4
  2337. Date       04-24-92 08:41:51
  2338. From       Dj Murdoch
  2339. To         Matt Heck
  2340. Subject    Re: FreePtr
  2341.  
  2342.   MH> Can anyone tell me what the TP6.0 equivilant to the TP5.0 FreePtr is?
  2343.  
  2344. There isn't one.  The heap manager is different; any routine that used FreePtr
  2345. in any non-trivial way is going to have to be rewritten.
  2346.  
  2347. --- Msg V3.2
  2348.  * Origin: Murdoch's Point: Waterloo, Ontario, Canada (1:221/177.40)
  2349.  * Tossed by SFToss v1.00b on 92/04/25  21:30:54
  2350.